package org.me.service.impl;

import java.io.Serializable;
import java.util.List;
import org.me.data.GenericDaoHibernate;
import org.me.entityBeans.TProvincias;
import org.me.service.ProvinciaServiceHibernate;

public class ProvinciaServiceHibernateImpl implements ProvinciaServiceHibernate{
    
    private GenericDaoHibernate genericDaoHibernateImpl;

    public GenericDaoHibernate getGenericDaoHibernateImpl() {
        return genericDaoHibernateImpl;
    }

    public void setGenericDaoHibernateImpl(GenericDaoHibernate genericDaoHibernateImpl) {
        this.genericDaoHibernateImpl = genericDaoHibernateImpl;
    }  
   
    //Graba o actualiza una Provincia x su Id
    @Override
    public void saveOrUpdateProvincia(TProvincias provincia) {
        this.getGenericDaoHibernateImpl().saveOrUpdate(provincia);
    }
    
    //Borra una Provincia x su Id
    @Override
    public String deleteProvincia(TProvincias provincia) {
        return this.getGenericDaoHibernateImpl().delete(provincia);
    }
    
    //Trae todas las Provincias ordenados x Id   
    @Override
   public List<TProvincias> findAllProvincias() {
        return this.getGenericDaoHibernateImpl().findByOnlyNamedQuery( "TProvincias.findAll");
    }    
    
    //Trae la Provincia que coincida con el nombre         
    @Override
    public List<TProvincias> findByNameProvincia(String nomProvincia) {          
        return this.getGenericDaoHibernateImpl().findByCriterio( "TProvincias.findByVNombreProvincia", "vNombreProvincia", nomProvincia );
    }  
    
    //Trae la Provincia que coincida con el id
    @Override
    public TProvincias findByIdProvincia(Serializable id) {        
        return  this.getGenericDaoHibernateImpl().findById(TProvincias.class, id);
    }
    
    //Trae la Provincia con sus Distritos asociados que coincida con el idProvincia
    @Override
    public List<TProvincias> findProvinciasConDistritos(Short idProvincia)
    {
        return this.getGenericDaoHibernateImpl().findByCriterio( "TProvincias.findProvinciasConDistritos", "nIdProvinciaPk", idProvincia );
    }
}
